﻿// 4505. 最大子集.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
/*
https://www.acwing.com/problem/content/4508/

给定一个包含 n
 个元素的整数集合。

集合中的元素两两不同。

请你找到一个该集合的最大子集，要求子集内的元素满足任意两元素之差的绝对值都是 2
 的整数幂。

注意，只包含 1
 个元素的子集一定满足条件。

输入格式
第一行包含整数 n
。

第二行包含 n
 个两两不同的整数 x1,x2,…,xn
。

输出格式
第一行输出一个整数 m
，表示满足条件的最大子集包含的元素数量。

第二行包含 m
 个整数，表示最大子集中包含的元素。

如果方案不唯一，则输出任意合理方案均可。

数据范围
前 6
 个测试点满足 1≤n≤10
。
所有测试点满足 1≤n≤2×105
，−109≤xi≤109
。

注意：本题数据范围较大，慎用cin/cout、unordered_set、unordered_map等操作。

输入样例1：
6
3 5 4 7 10 12
输出样例1：
3
7 3 5
输入样例2：
5
-1 2 5 8 11
输出样例2：
1
8
*/
#include <iostream>

int main()
{
    std::cout << "Hello World!\n";
}

 